队列调度算法有哪些(路由器/交换机/QoS)? 您所在的位置:网站首页 poe交换机 知乎 队列调度算法有哪些(路由器/交换机/QoS)?

队列调度算法有哪些(路由器/交换机/QoS)?

2023-03-22 08:47| 来源: 网络整理| 查看: 265

QoS是什么?

QoS是Quality of Service(服务质量)的缩写,是一种网络技术,用于控制和管理数据包的传输,以确保网络在不同的应用程序和服务之间分配带宽。QoS可以确保网络上的重要数据流量得到优先处理,从而提高网络性能和用户体验。QoS技术可分为三种类型:流量分级、流量控制和流量调度。本文主要介绍现有的QoS调度算法。

调度算法

调度算法决定的是多个队列的胜者,即选择哪个队列的队头进入下一步。

大致分为:优先级调度,公平调度,混合调度。

一、优先级调度SP(Strict Priority,严格优先级)

也称为PQ(Priority Queuing)调度,就是严格按照队列优先级的高低顺序进行调度。只有高优先级队列中的报文全部调度完毕后,低优先级队列才有调度机会。

每个队列具有不同的优先级,如果当前处于选择胜者的过程,则优先选择高优先级队列中的数据包。 如果处于数据传输过程,此时到达了新的数据包,则有:

低优先级数据包到达,不做处理高优先级数据包到达,如果是抢占调度(如PQ),则中断当前传输,转而传输高优先级数据,如果是非抢占式的优先级调度(如SP),则不做处理。

默认的PQ队列只有4个优先级,是一种很古老的调度方式。

优点:十分利于时间敏感应用,确保关键业务被优先发送。

缺点:容易造成低优先级饥饿和网络抖动

二、公平调度

保证每个队列都有机会得到调度。假设n个队列具有权重{w1 … wi … wn},根据不同的类别将数据包放入不同的队列,总带宽C根据权重分配。 公平配置基于Generalized Processor Sharing (GPS),理想情况下每个队列获得的瞬时发送速率比例等价于权重之比,但是在实际中都是采用近似的方式。

优点:公平性得到保证,避免饥饿和抖动。

缺点:即时性得不到满足。

1.RR(Round Robin,轮询)

按照队列顺序平均分配带宽,循环调度报文传输。

2.WRR(Weighted Round Robin,加权轮询)

按轮执行,权重可以类比为计数器(WRR各队列权重相同则退化为RR),每发送一个基本单位计数器减一,直到没有数据或计数器值为0,新的轮次开始时计数器的值初始化。

实现细节:在每一轮中,对于当前权重为wi的队列,若数据包数量小于等于wi,则全部发送;若数据包数量大于wi,发送wi数量的数据包然后结束;之后询问下一队列。

优点:

(1)避免采用SP调度时低优先级队列中的报文可能长时间得不到调度的缺点;

(2)WRR对于空的队列直接跳过,循环调度的周期变短,因此当某个队列流量小的时候,剩余带宽能够被其他队列按照比例占用。

缺点:

(1)某一数据包到达时,它对应的队列刚被询问结束,就需要等待一个轮次的时间;

(2)在以数据包为基本单位的WRR中,有更多大数据包的队列会获得超过权重比例的带宽。

(3)相比SP调度,低延迟的关键业务(如语音)得不到及时调度。

3.DWRR(Deficit Weighted Round Robin)

它将计算单位细化到了字节,若端口具有参数MTU,则每个队列的权重为wi*MTU,即每一轮次中,每一队列发送的那些报文的总字节数不能超过wi*MTU,而且所剩配额不够发送当前报文时,会累加配额给下一轮次。 即使是具有更多大数据报的队列所获得的带宽也会大致符合权重比例。

优点:

(1)避免采用SP调度时低优先级队列中的报文可能长时间得不到调度的缺点。

(2)避免采用WRR调度时各队列报文长度不等或变化较大时,不能按权重分配带宽资源的缺点。

缺点:

相比SP调度,低延迟的关键业务(如语音)得不到及时调度。

4.FQ(Fair Queueing)

将网络流量分为多个队列,按照一定的规则进行调度,以确保每个队列都能得到一定的带宽。

5.WFQ(Weight Fair Queue)

WFQ是一种基于流的队列调度策略,旨在实现网络上的流量公平性和带宽共享。它为每个数据流分配一个加权值来控制该数据流在队列中获得带宽资源的比例。因此,流量大小、类型和优先级都可以被用作计算加权值的因素。WFQ尤其适用于那些对响应时间和流量均衡有高要求的网络,如多媒体应用、语音和视频会议等应用场景。

优点:

1.提供了流级别的公平性:对每个数据流进行合理的带宽分配,避免了某些流占用大部分带宽而导致其他流受到影响。

2.可以有效地减少延迟:通过将不同流的分组分离,并根据其重要性、大小、类型等因素进行排序,可以确保高优先级的流较快地传输。

3.灵活的策略:WFQ提供一种灵活的方式来分配带宽,以适应动态网络环境中的变化需求,同时可以处理不同速率的流量,从而实现更好的流水线利用率。

缺点:

1.WFP调度算法的性能较低:WFQ与一些其他调度算法相比,在面对大规模网络或长期运行的情况下,可能会引起性能下降。

2.处理单个流的能力有限:WFQ在处理单个大流时,可能会产生较高的延迟和较低的吞吐量。因此,更适合处理许多小流的场景。

3.实现成本和复杂性较高:WFQ实现需要额外的硬件和软件支持,这增加了实现的成本和复杂性。

6.DWFQ(Dynamic Weighted Fair Queuing)

是一种基于IP流和端口号的带宽调度算法,它可以根据数据流量的类型、大小、优先级等因素来分配带宽资源,从而实现网络上的公平性、服务质量和带宽管理。

优点:

可以根据应用程序或服务的不同,为其分配合适的带宽资源,确保高优先级的应用程序或服务获得更多的带宽。可以识别不同数据流之间的差异,从而避免某些数据流占用大部分带宽而影响其他数据流的传输效果。具有动态调节带宽资源的能力,使其可以适应网络拥堵和流量变化的情况,从而提供更好的服务质量和网络性能。

缺点:

DWFQ不能在Fast EtherChannel、隧道、MLP等逻辑或虚拟接口上配置,这可能会限制其灵活性。DWFQ可能会影响路由器的性能,特别是在大规模网络中运行时。DWFQ需要额外的硬件和软件支持,这增加了实现的成本和复杂性。7.CBWFQ(class-based weighted fair queuing)

CBWFQ是一种在网络中基于分类的流量调度算法,可以根据不同的流量类别分配不同的带宽资源,以提高其相对优先级。

优点:

1.提供了更灵活的流量控制:CBWFQ允许用户对不同的流量进行分类,根据不同的类别分别设置不同的服务质量(QoS),这样就可以针对具体的应用场景对流量进行更精确的控制。

2.实现了更精细的流量管理:CBWFQ可以对不同的流量类别进行多种限制,如带宽限制、队列大小限制、缓存等,这些限制可以在不同的类别之间进行精细调整,以达到更好的流量控制效果。

3.提升了网络性能:通过为不同的流量类别分配带宽资源,CBWFQ可以防止某些流量占用过多的带宽,从而避免网络拥塞,并提高网络性能。

缺点:

1.配置较为复杂:由于CBWFQ需要对不同的流量类别进行精细调整,因此需要对具体场景进行深入分析和配置,这会增加配置的复杂性和难度。

2.实时性较差:CBWFQ对流量的分类和处理需要占用一定的系统资源,这可能会影响网络的实时性和延迟性。

3.可扩展性有限:CBWFQ的可扩展性受到硬件资源和系统性能的限制,因此在大规模网络中可能会出现瓶颈问题。

三、混合调度

同时存在优先级队列+公平调度队列。优先级队列可能有多个,可能是抢占或非抢占。满足即时性,又缓解饥饿。

CQ

默认的CQ算法是0号队列为优先队列,1-16号为基于轮询的带有权重的公平队列,如PQ+DWRR 优先队列有数据则处理,无数据则继续执行轮询,CQ算法比较简单,分类策略也比较原始。

它可以为不同的应用程序分配带宽,并且支持各种服务质量(QoS)策略,例如带宽限制、抖动抑制和延迟保证等。然而,CQ无法为敏感应用程序提供优先级别的带宽保障。

优点:

1.提供了更加灵活的流量控制:CQ可以根据应用程序或流量类型对其进行分类,从而可以按照不同的流量类型动态分配带宽资源。

2.支持多种QoS策略:CQ支持诸如带宽限制、抖动控制和延迟保证等多种QoS策略,这些策略可以根据不同的场景进行灵活配置。

3.易于实现:CQ的实现相对简单,可以通过软件配置和硬件支持来实现。

缺点:

1.无法提供高优先级带宽的保障:CQ无法分配带宽的优先级,因此无法为高优先级应用提供带宽保障。

2.对时延和抖动敏感的应用性能受影响:CQ无法为时延和抖动敏感的应用提供优先级别的带宽保障,因此可能会影响其性能。

LLQ

比较常用的算法,PQ(或SP) + CBWFQ,对于每个类都有一定的带宽保障值,可能是比例或者固定值,当拥塞发生时,此时进行管制,高优先级队列也不能超过它的带宽分配值。非拥塞时则不进行管制,此时高优先级会获得超过该固定值的带宽。

LLQ是较为高级的QoS调度算法,它可以为时延和抖动敏感型应用的流量提供一个或多个有带宽保证的严格优先级队列。LLQ的最大优势在于其可以确保具有高优先级的流量得到及时处理,从而保证敏感应用程序的响应性和可靠性。

优点:

1.可以提供实时的优先级控制:LLQ可以为时延和抖动敏感型应用程序提供一个或多个高优先级保证带宽的专用队列,从而确保具有高优先级的流量得到及时处理。

2.更加灵活的配置选项:LLQ允许在每个队列上应用WRED(随机早期检测),使流量更高效地利用带宽资源。

3.能够适用于广泛的网络平台和传输介质:LLQ并不局限于特定平台或传输介质,可以适用于各种网络环境和网络设备上。

缺点:

1.仅适用于时延和抖动敏感型应用: LLQ只能为时延和抖动敏感型应用程序提供专用队列,因此无法为其他类型的应用程序提供带宽保障。

2.配置复杂:由于其对不同流量类型的处理都不同,LLQ的配置比CQ更为复杂。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有